package com.yxy.service;

import com.yxy.common.PageResult;
import com.yxy.domain.dto.UserDTO;
import com.yxy.domain.dto.UserLoginDTO;
import com.yxy.domain.dto.UserPageQueryDTO;
import com.yxy.domain.vo.UserLoginVO;
import com.yxy.domain.vo.UserVO;

import java.util.List;

public interface UserService {
    /**
     * 注册
     * @param userDTO
     */
    void register(UserDTO userDTO);

    /**
     * 登录
     * @param userLoginDTO
     * @return
     */
    UserLoginVO login(UserLoginDTO userLoginDTO);

    /**
     * 校验密码
     * @param password
     */
    void verifyPwd(Integer id, String password);

    /**
     * 修改密码
     * @param id
     * @param newPwd
     */
    void updatePwd(Integer id, String newPwd);

    /**
     * 校验手机号
     * @param id
     * @param phone
     */
    void verifyPhone(String username, String phone);

    /**
     * 重置密码
     * @param userDTO
     */
    void resetPwd(UserDTO userDTO);

    /**
     * 获取用户信息
     * @param id
     * @return
     */
    UserVO getUserInfo(Integer id);

    /**
     * 修改用户信息
     * @param userDTO
     */
    void updateUserInfo(UserDTO userDTO);

    /**
     * 修改活动时间
     * @param id
     */
    String modifyActivityTime(Integer id);

    /**
     * 分页查询
     * @param userPageQueryDTO
     * @return
     */
    PageResult page(UserPageQueryDTO userPageQueryDTO);

    /**
     * 修改状态
     * @param id
     * @param status
     */
    void state(int id, int status);

    /**
     * 批量删除
     * @param ids
     */
    void batchDelete(List<Integer> ids);
}
